<?php

abstract class Dao {

	protected function criteriosConsulta(CriterioDeBusqueda $criterioDeBusqueda,Doctrine_Query $q){

	//UNICO -
       if (count($criterioDeBusqueda->getUnico()) > 0){
       	   foreach($criterioDeBusqueda->getUnico() as $unico => $valor){
           	$q->distinct($unico);
           	$q->groupBy($unico);
       	   }
       }




	   if ($criterioDeBusqueda->getLimite() > 0){
       	$q->limit($criterioDeBusqueda->getLimite());
       }

       $comparacion = $criterioDeBusqueda->getCriteriosDeBusquedaComparacion();
       foreach ($criterioDeBusqueda->getCriteriosDeBusqueda() as $campo => $valor) {
            $where = $campo." ".$comparacion[$campo]." '".$valor."'";
            $q->addWhere($where);
       }


       foreach ($criterioDeBusqueda->getCriteriosDeOrden() as $campo => $valor) {
            $order = $campo." ".$valor."";
            $q->addOrderBy($order);
       }

    return $q;
	}
}
?>